It is common practice during the initialisation of information processing systems such as computers, controller cards etc to carry out a series of tests on various components of the system hardware in order to determine that everything is in working order i.e. that an application designed to run on the hardware will function correctly. This type of testing is commonly referred to as Power-on Self Test (POST) and is carried out when the system is powered-on or otherwise reset. Traditionally POST code is provided in read-only memory in the system and runs as a completely separate program from the main application which subsequently runs on the same hardware. Typically, the POST code is designed to thoroughly test, in sequence, the operation of a number of critical hardware components. POST either terminates successfully or fails with some diagnostic code.
Coupling between the POST and the application is normally very poor in that failure of POST normally means that the application code never runs. This is because the application is assumed to be intolerant of bad hardware.
It would be desirable to provide a technique which is suitable for more closely coupling the POST and application and which allows for continued operation of the system in the event of non-critical failures detected during POST.